package com.wave.spring.boot.plugs;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * Created by weibo.xwb on 2017/8/10.
 * 初始化器是在**应用刷新容器之前做一些初始化的工作**。
 * 初始化器的接口类是ApplicationContextInitializer。
 * 在SpringApplication实例化时，所有的初始化器作为initializers属性被加载到实例中，
 * 接着在刷新容器前置动作中applyInitializers方法遍历执行所有初始化器。
 */
public class CanonCustomApplicationInitializer implements ApplicationContextInitializer {

    private static final Logger logger = LoggerFactory.getLogger(CanonCustomApplicationInitializer.class);

    @Override
    public void initialize(ConfigurableApplicationContext applicationContext) {
        // 初始化动作
        logger.warn("Awesome! customized ApplicationContextInitializer worked!");
    }
}